1. Field
The following description relates to an apparatus and method for virtual memory management to execute virtual machines in a multi-processor and multi-memory environment.
2. Description of the Related Art
Methods in which a plurality of processors access a memory include Uniform Memory Access (UMA) and Non-Uniform Memory Access (NUMA). In the UMA, a plurality of processors access a memory through a bus and at a same memory access speed. However, as more processors access the memory, more bottleneck results, which leads to deterioration of memory access performance.
In the NUMA, a plurality of processors have their own internal memories, respectively, and the internal memories are connected to each other through a network such that each processor can access the internal memories (that is, external memories with respect to the processor) of other processors as well as its own internal memory. Each processor may access a memory at a different memory access speed based on a location of the memory. In other words, a processor may take a longer time to access an external memory than to access its own internal memory, which may deteriorate memory access performance.
Further, in order to execute a plurality of UMA-based virtual machines (VMs) in a NUMA environment, a virtual machine monitor (VMM) that virtualizes the NUMA environment into a UMA environment is needed. For the virtualization, several methods have been proposed: a method of replicating data being frequently accessed in internal memories of processors, a method of migrating data being frequently accessed to an internal memory of a processor in which access is made, and a method of migrating a task with data being frequently accessed to another processor. However, since these methods require replication, migration, or task migration, respectively, performance overhead may occur. Accordingly, there are difficulties in ensuring memory access performance of application programs, and particularly, in guaranteeing a quality of service (QoS) of tasks requiring frequent memory accesses.